package mysql8学习.高级.第10章_索引优化与查询优化;

/**
 * 2.3 主键插入顺序   AUTO_INCREMENT  自动递增
 * 对于一个使用InnoDB存储引擎的表来说，在我们没有显式的创建索引时,
 * 表中的数据实际上都是存储在聚簇索引的叶子节点的。
 * 而记录又是存储在数据页中的,数据页和记录又是按照记录主键值从小到大的顺序进行排序,
 * 所以如果我们插入的记录的主键值是依次增大的话,那我们每插满一个数据页就换到下一个数据页继续插，
 * 而如果我们插入的主键值忽大忽小的话,就比较麻烦了，假设某个数据页存储的记录已经满了，
 * 它存储的主键值在1~100之间:
 *
 * 可这个数据页已经满了，再插进来咋办呢?我们需要把当前页面分裂成两个页面，
 * 把本页中的一些记录移动到新创建的这个页中。页面分裂和记录移位意味着什么?
 *
 * 意味着:性能损耗!所以如果我们想尽量避免这样无谓的性 能损耗，
 * 最好让插入的记录的主键值依次递增，这样就不会发生这样的性能损耗了。
 * 所以我们建议:让主键具有AUTO_INCREMENT，让存储引擎自己为表生成主键，而不是我们手动插入，
 *
 *
 */
public class B3_主键插入顺序 {
}
